60 research outputs found

    A UML-based aspect-oriented design notation for AspectJ

    Get PDF

    Understanding Formal Specifications through Good Examples

    Get PDF
    Formal specifications of software applications are hard to understand, even for domain experts. Because a formal specification is abstract, reading it does not immediately convey the expected behaviour of the software. Carefully chosen examples of the software’s behaviour, on the other hand, are concrete and easy to understand—but poorly-chosen examples are more confusing than helpful. In order to understand formal specifications, software developers need good examples.We have created a method that automatically derives a suite of good examples from a formal specification. Each example is judged by our method to illustrate one feature of the specification. The generated examples give users a good understanding of the behaviour of the software. We evaluated our method by measuring how well students understood an API when given different sets of examples; the students given our examples showed significantly better understanding

    Usability of Programming Languages

    Get PDF
    Programming languages form the interface between programmers (the users) and the computation that they desire the computer to execute. Although studies exist for some aspects of programming language design (such as conditionals), other aspects have received little or no human factors evaluations. Designers thus have little they can rely on if they want to make new languages highly usable, and users cannot easily chose a language based on usability criteria. This SIG will bring together researchers and practitioners interested in increasing the depth and breadth of studies on the usability of programming languages, and ultimately in improving the usability of future languages.nonPeerReviewe

    Adaptation of topoisomerase I paralogs to nuclear and mitochondrial DNA

    Get PDF
    Topoisomerase I is essential for DNA metabolism in nuclei and mitochondria. In yeast, a single topoisomerase I gene provides for both organelles. In vertebrates, topoisomerase I is divided into nuclear and mitochondrial paralogs (Top1 and Top1mt). To assess the meaning of this gene duplication, we targeted Top1 to mitochondria or Top1mt to nuclei. Overexpression in the fitting organelle served as control. Targeting of Top1 to mitochondria blocked transcription and depleted mitochondrial DNA. This was also seen with catalytically inactive Top1 mutants, but not with Top1mt overexpressed in mitochondria. Targeting of Top1mt to the nucleus revealed that it was much less able to interact with mitotic chromosomes than Top1 overexpressed in the nucleus. Similar experiments with Top1/Top1mt hybrids assigned these functional differences to structural divergences in the DNA-binding core domains. We propose that adaptation of this domain to different chromatin environments in nuclei and mitochondria has driven evolutional development and conservation of organelle-restricted topoisomerase I paralogs in vertebrates

    Design dimensions of aspect -oriented systems

    No full text
    Aspect-oriented software development is a promising approach that addresses the problem of modularizing crosscutting concerns – concerns whose implementation cannot be modularized due to the set of abstractions provided by the underlying programming language as well as due to the set of decomposition criteria applied to the underlying problem. Thereto, aspect-oriented systems provide additional abstractions in order to increase the modularity of software systems and consequently to increase the system’s readability, understandability, maintainability and reusability. Nowadays, there are already a number of so-called aspect-oriented systems available that supply a set of new constructs to address the given problem. However, it is not clear what the criteria for a system are in order to be called aspect-oriented and what commonalities and differences exist among different aspect-oriented systems. This also implies that for a given crosscutting concern it cannot be determined on an abstract level what system is able to modularize such a concern in an appropriate way. This thesis describes the characteristics of aspect-oriented systems by so-called design dimensions – orthogonal, conceptual views on the core ingredients of aspect-oriented systems that determine the underlying implementation. It is shown that by means of such abstract design dimensions it is possible to estimate the appropriateness of a system with respect to modularize a given crosscutting concern

    Morphing Aspects: Incompletely Woven Aspects and Continuous Weaving

    No full text
    Weaving is one of the fundamental mechanisms of aspectoriented systems. A weaver composes different aspects with the base system by determining and adapting all parts where aspect specific elements are needed eventually. At runtime, timeconsuming join point checks are necessary to determine if at a certain join point aspect-specific code needs to be executed. Current technologies enforce such checks even in locations that only temporarily or under restrictive conditions (or even never) execute aspect-specific code. In more complex applications, a large number of these checks fail and just cause a substantial runtime overhead without contributing to the system's overall behavior. The main reason for this flaw is complete weaving, the way how aspects are woven to an application using current technologies. In this paper we discuss the problem of unnecessary join point checks caused by complete weaving. We introduce morphing aspects – incompletely woven aspects in combination with continuous weaving – to overcome the problem of futile join point checks. 1

    Parametric Introductions

    No full text
    Aspect-oriented software development allows the programmer to identify and treat separately concerns that, subsequently, can be woven to different target applications. For this, aspect-oriented languages like AspectJ and Hyper/J provide mechanisms for defining and composing such crosscutting concerns. An introduction is a mechanism for defining certain static crosscutting concerns, i.e., concerns that affect the type of the application they are woven to. This paper discusses the implementations of introductions in AspectJ and Hyper/J and reveals their limitations by presenting typical examples of static crosscutting code that cannot be handled adequately by them. To solve these deficiencies we will present the concept of parametric introduction, which are introductions that rely on parameters that are evaluated during weavetime
    corecore